package com.etc.service;

import com.etc.entity.*;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface ShowingService {

    /**
     * @param 'showNo' 上映场次
     * @return 对应厅的总座位数
     * @author luliang
     */
    Showings getShowSeat(int showNo);

    /**
     * @param 'showNo' 上映场次
     * @return 返回一个数组, 查询对应厅的总座位数
     * @author luliang
     */
    List<Orders> getSellSeatByShowNo(int showNo);

    /**
     * @param movieNo 电影序号
     * @param day     今日,明日,后日的参考,0今天,1明天,2后天
     * @return 上映表集合
     * @author luliang
     */
    List<Showings> getShowingsByMovieAndDay(int movieNo, int day);

    /**
     * @param showNo 上映序号
     *               根据上映序号删除座位数量
     * @author luliang
     */
    int doDelSeatByShwoingNo(int showNo);

    /**
     * 添加场次
     *
     * @param showings 场次数据
     * @return boolean
     */
    boolean addShowing(Showings showings);

    /**
     * 查询全部厅
     *
     * @return List<Cinemas>
     */
    List<Cinemas> queryAllCin();

    /**
     * 查询座位数
     *
     * @param cinema_no 展厅号
     * @return Integer
     */
    Integer querySeats(Integer cinema_no);

    /**
     * 查询全部场次
     * @param pageNum num
     * @param pageSize size
     * @return  PageInfo<Showings>
     */
    PageInfo<Showings> queryAll(Integer pageNum, Integer pageSize);

    /**
     * 查询全部类型
     *
     * @return List<Types>
     */
    List<Types> queryAllType();

    /**
     * 增加放映厅
     * @param cinemas 放映厅信息
     * @return boolean
     */
    boolean addCinema(Cinemas cinemas);
    /**
     * 查询全部
     * @return
     */
    PageInfo<Cinemas> queryAllCint(Integer pageNum, Integer pageSize);
    /**
     * 增加类型
     *
     * @param types 类型
     * @return boolean
     */
    boolean addType(Types types);

    /**
     * 查询全部类型
     *
     * @return
     */
    List<Categorys> queryAllCate();

    /**
     * 添加电影类型
     *
     * @param categorys 电影类型
     * @return boolean
     */
    boolean addCate(Categorys categorys);

    /**
     * 删除场次
     */
    boolean delShowing(Integer showing_no);

    /**
     * 删除影厅
     * @param cinema_no 影厅编号
     * @return
     */
    boolean delCinema(Integer cinema_no);

    /**
     * 根据影厅表删除场次
     *
     * @param cinema_no
     * @return
     */
    boolean delByCinema(Integer cinema_no);
}
